Excel VBA调用Excel函数示例 |
您所在的位置:网站首页 › vba sum函数代码 › Excel VBA调用Excel函数示例 |
一、关于sumif()函数的用法说明及用途。 根据指定条件对若干单元格求和。 语法 SUMIF(range,criteria,sum_range) Range 为用于条件判断的单元格区域。 Criteria 为确定哪些单元格将被相加求和的条件,其形式可以为数字、表达式或文本。例如,条件可以表示为 32、"32"、">32" 或 "apples"。 Sum_range 是需要求和的实际单元格。 说明 只有在区域中相应的单元格符合条件的情况下,sum_range 中的单元格才求和。 如果忽略了 sum_range,则对区域中的单元格求和。 Microsoft Excel 还提供了其他一些函数,它们可根据条件来分析数据。例如,如果要计算单元格区域内某个文本字符串或数字出现的次数,则可使用 COUNTIF 函数。如果要让公式根据某一条件返回两个数值中的某一值(例如,根据指定销售额返回销售红利),则可使用 IF 函数。 以上是从帮助文件里复制出来的,以前没有好好看到这些,以为没什么用处,但现在看来里面真是遍地黄金甲啊!! 效果截图如下: 示例解释如下:把属性值(A列)中大于等于200000的(这是条件)对应单元格(B列)(这是实际进行求和的区域)进行求和。 这个函数有什么用处呢?尤其是在学生成绩处理过程中 想来想去,也只能是指把它归为可以进行条件求各而已。 二、在VBA中如何实现? 其实可以用在以下情况中,比如可以统计、计算每个人的工作量,而且可以直接填到指定单元格内。如果想在VBA中实现的话,那就需要完成以下两步: ①获取每个人的姓名,存入数组中。这里有个问题,可不是在数组定义中指定常量?②根据数组列表中每个人姓名,以此为条件,计算每个人的工作量。这样就不用要求必须提前排好序,即使是乱序也不要紧了。 下面就实现这个功能吧。以统计各任课教师的工作量为例,样表如下: 由上表明显可以看出,B列中有重复列存在,处理过的样表如下: 源程序如下: Option Base 1Sub 统计工作量() '建立验证表,删除重复行,并获取教师姓名,同时也获得了教师列表。 Application.DisplayAlerts = False Worksheets("sheet1").Activate Worksheets("sheet1").Copy before:=Worksheets("sheet1") ActiveSheet.Name = "验证" 'ActiveSheet.Delete Dim R As Integer Dim i As Integer R = Range("B65536").End(xlUp).Row For i = R To 1 Step -1 If Application.WorksheetFunction.CountIf(Range(Cells(1, 2), Cells(R, 2)), Cells(i, 2)) > 1 Then '充分利用Countif函数的功能:统计在指定区域内符合条件的个数,据此:若符合cells(i,2)的单元格个数出现了2个以上,则该行一定有重复行,那么即可把该行删掉. Range(Cells(i, 2), Cells(i, 2)).EntireRow.Delete End If Next i R = Range("B65536").End(xlUp).Row Dim xm() As String '如果写成Dim xm(R) As String,则会提示下标超界,但利用ReDim却可以写入变量。这个问题终于解决了。 Dim gzl() As Double '建立工作量数组,存储每位教师的最终工作量。 ReDim xm(R) ReDim gzl(R) For i = 1 To R xm(i) = Cells(i + 1, 2).Value Debug.Print xm(i) Next i Worksheets("sheet1").Activate For i = 1 To R gzl(i) = Application.WorksheetFunction.SumIf(Range(Cells(2, 2), Cells(79, 2)), xm(i), Range(Cells(2, 3), Cells(79, 3))) Debug.Print gzl(i) Next i Worksheets("验证").Activate For i = 1 To R Cells(i + 1, 4).Value = gzl(i) Next i Cells(1, 4).Value = "工作量合计"End Sub |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |